// 随机数据生成模块
// 包含所有用于生成虚构电影数据的随机内容

// 电影标题模板
const movieTitleTemplates = [
  '量子剧场：{theme}的表演艺术',
  '星云投影：{theme}的影像表达',
  '虚构档案：{theme}的电影史',
  '时间褶皱：{theme}的维度艺术',
  '植物意识：{theme}的视觉诗篇',
  '平行影像：{theme}的另一种可能',
  '星际胶片：{theme}的影像记忆',
  '宇宙剧场：{theme}的表演艺术',
  '意识投影：{theme}的视觉表达',
  '维度档案：{theme}的历史记录'
]

const movieThemes = [
  '多重宇宙', '宇宙意识', '被遗忘', '第四维度', '绿色世界', '1895年', 
  '硅基文明', '星际旅行', '量子意识', '时空裂缝', '平行历史', '未来考古',
  '意识觉醒', '维度跳跃', '宇宙诗篇', '星际文明', '量子纠缠', '时空褶皱'
]

// 演员名字
const actorNames = [
  '艾莉娅·星云', '量子·李维斯', '博尔赫斯·陈', '平行·张', '宇宙·王',
  '意识·刘', '维度·赵', '时空·孙', '星际·周', '量子·吴', '星云·郑',
  '平行·冯', '宇宙·陈', '意识·褚', '维度·卫', '时空·蒋', '星际·沈',
  '量子·韩', '星云·杨', '平行·朱'
]

// 导演名字
const directorNames = [
  '克里斯托弗·量子', '斯坦利·星云', '大卫·平行', '昆汀·宇宙',
  '诺兰·意识', '卡梅隆·维度', '斯皮尔伯格·时空', '库布里克·星际',
  '希区柯克·量子', '费里尼·星云', '伯格曼·平行', '塔可夫斯基·宇宙'
]

// 电影类型
const movieGenres = [
  ['科幻', '奇幻', '悬疑'],
  ['艺术', '实验', '哲学'],
  ['历史', '伪史料', '未来'],
  ['意识', '量子', '维度'],
  ['星云', '宇宙', '平行']
]

// 电影标签
const movieTags = [
  '量子', '星云', '平行', '意识', '维度', '时空', '宇宙', '科幻', '奇幻', '实验',
  '艺术', '哲学', '历史', '未来', 'AI', '外星', '硅基', '植物', '抽象', '先锋'
]

// 国家/地区
const countries = [
  '平行宇宙联合体', '意识联盟', '时空王国', '星云联邦', '维度帝国', '量子共和国'
]

// 语言
const languages = [
  '平行语', '意识语', '时空语', '星云语', '维度语', '量子语'
]

// 评论模板
const commentTemplates = [
  '这部电影展现了{aspect}的独特魅力，{opinion}。',
  '作为一个{role}，我认为这部作品在{aspect}方面{opinion}。',
  '{aspect}的处理令人印象深刻，{opinion}。',
  '这部虚构电影在{aspect}上的表现{opinion}。',
  '从{role}的角度来看，{aspect}的设计{opinion}。',
  '这部电影的{aspect}让我{opinion}。',
  '在{aspect}方面，这部作品{opinion}。',
  '作为一个{role}，我被{aspect}深深吸引，{opinion}。'
]

const aspects = [
  '平行宇宙设定', '量子力学概念', '星云美学', '意识哲学', '维度跳跃', 
  '时空结构', '虚构历史', 'AI生成内容', '视觉特效', '剧情构思',
  '角色塑造', '世界观构建', '艺术风格', '音乐配乐', '摄影技术'
]

const opinions = [
  '令人叹为观止', '充满想象力', '富有哲理性', '技术精湛', '创意十足',
  '引人深思', '视觉震撼', '概念新颖', '制作精良', '意义深远',
  '令人耳目一新', '充满未来感', '富有诗意', '技术先进', '艺术价值很高'
]

const roles = [
  '科幻爱好者', '艺术评论家', '哲学研究者', '电影学者', '量子物理学家',
  '平行宇宙专家', '意识研究学者', '维度理论家', '时空旅行者', '星际观察员'
]

// 工具函数
function getRandomElement(array) {
  return array[Math.floor(Math.random() * array.length)]
}

function getRandomElements(array, count) {
  const shuffled = [...array].sort(() => 0.5 - Math.random())
  return shuffled.slice(0, Math.min(count, array.length))
}

function getRandomNumber(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min
}

function getRandomFloat(min, max, decimals = 1) {
  return parseFloat((Math.random() * (max - min) + min).toFixed(decimals))
}

// 生成电影标题
function generateMovieTitle() {
  const template = getRandomElement(movieTitleTemplates)
  const theme = getRandomElement(movieThemes)
  return template.replace('{theme}', theme)
}

// 生成电影描述
function generateMovieDescription(title) {
  const descriptions = [
    `《${title}》是一部探索平行宇宙中电影艺术可能性的虚构作品。`,
    `这部作品展现了在量子力学影响下，电影艺术的全新表现形式。`,
    `通过星云投影技术，这部电影呈现了宇宙意识的视觉化表达。`,
    `作为一部伪史料风格的虚构电影，它重新诠释了电影史的发展轨迹。`,
    `这部作品探讨了植物意识如何通过视觉艺术进行自我表达。`,
    `在时间褶皱中，这部电影展现了第四维度的艺术可能性。`,
    `通过意识投影技术，观众可以体验到非人类文明的视觉艺术。`,
    `这部作品重新定义了在平行宇宙中电影艺术的发展方向。`
  ]
  return getRandomElement(descriptions)
}

// 生成电影剧情
function generateMoviePlot(title) {
  const plots = [
    `在${getRandomElement(['量子宇宙', '平行维度', '星云空间', '意识领域'])}中，一位${getRandomElement(['量子导演', '星云艺术家', '意识探索者', '维度旅行者'])}发现了一种全新的电影制作技术。通过${getRandomElement(['量子纠缠', '星云投影', '意识共振', '维度跳跃'])}，他创作出了这部前所未有的虚构电影。`,
    
    `故事发生在${getRandomElement(['1895年', '2157年', '量子纪元', '星云时代'])}，当时${getRandomElement(['摄影术', '量子技术', '星云艺术', '意识科学'])}刚刚被发明。一位${getRandomElement(['天才发明家', '艺术先驱', '科学怪人', '哲学大师'])}利用这项技术拍摄了第一部${getRandomElement(['量子电影', '星云影像', '意识投影', '维度记录'])}。`,
    
    `在${getRandomElement(['硅基文明', '植物王国', '星云联邦', '量子共和国'])}中，${getRandomElement(['AI艺术家', '植物意识', '星云生命', '量子意识'])}开始探索视觉艺术的可能性。通过${getRandomElement(['算法生成', '光合作用', '星云共振', '量子计算'])}，他们创造了这种全新的电影形式。`
  ]
  return getRandomElement(plots)
}

// 生成评论内容
function generateComment() {
  const template = getRandomElement(commentTemplates)
  const aspect = getRandomElement(aspects)
  const opinion = getRandomElement(opinions)
  const role = getRandomElement(roles)
  
  return template
    .replace('{aspect}', aspect)
    .replace('{opinion}', opinion)
    .replace('{role}', role)
}

// 生成电影数据
function generateMovieData(uploaderId, isAi = false) {
  const title = generateMovieTitle()
  const description = generateMovieDescription(title)
  const plot = generateMoviePlot(title)
  
  return {
    title: title,
    original_title: title,
    cover_url: '/placeholder.svg',
    video_url: null,
    rating: getRandomFloat(6.0, 9.5),
    year: getRandomNumber(1895, 2157),
    duration: `${getRandomNumber(60, 180)}:00`,
    genres: getRandomElements(movieGenres[getRandomNumber(0, movieGenres.length - 1)], getRandomNumber(2, 4)),
    description: description,
    plot: plot,
    actors: getRandomElements(actorNames, getRandomNumber(3, 8)),
    director: getRandomElement(directorNames),
    uploader_id: uploaderId,
    views: getRandomNumber(100, 10000),
    likes: getRandomNumber(10, 500),
    is_ai: isAi,
    universe: getRandomElement(['量子宇宙', '平行宇宙', '星云宇宙', '意识宇宙', '维度宇宙']),
    tags: getRandomElements(movieTags, getRandomNumber(3, 6)),
    language: getRandomElement(languages),
    country: getRandomElement(countries),
    budget: `$${getRandomNumber(1, 100)}M`,
    box_office: `$${getRandomNumber(10, 500)}M`,
    awards: getRandomElements(['最佳虚构电影', '最佳平行宇宙设定', '最佳AI生成内容', '最佳星云摄影', '最佳意识表达'], getRandomNumber(0, 3)),
    trivia: getRandomElements([
      '这部电影在平行宇宙中获得了奥斯卡奖',
      '导演声称灵感来自量子纠缠现象',
      '部分场景由AI自动生成',
      '拍摄过程中发现了新的时空维度',
      '演员们都是来自不同宇宙的旅行者'
    ], getRandomNumber(1, 3))
  }
}

// 生成随机评论数据
function generateCommentData(movieId, userId) {
  return {
    movie_id: movieId,
    user_id: userId,
    content: generateComment(),
    likes: getRandomNumber(0, 50),
    dislikes: getRandomNumber(0, 10),
    parent_id: null
  }
}

// 生成随机回复评论数据
function generateReplyData(movieId, userId, parentId) {
  return {
    movie_id: movieId,
    user_id: userId,
    content: generateComment(),
    likes: getRandomNumber(0, 20),
    dislikes: getRandomNumber(0, 5),
    parent_id: parentId
  }
}

// 生成随机投票数据
function generateVoteData(userId, commentId) {
  return {
    user_id: userId,
    comment_id: commentId,
    vote_type: getRandomElement([1, -1]) // 1=点赞, -1=点踩
  }
}

module.exports = {
  // 工具函数
  getRandomElement,
  getRandomElements,
  getRandomNumber,
  getRandomFloat,
  
  // 生成函数
  generateMovieTitle,
  generateMovieDescription,
  generateMoviePlot,
  generateComment,
  generateMovieData,
  generateCommentData,
  generateReplyData,
  generateVoteData,
  
  // 数据数组
  movieGenres,
  movieTags,
  movieTitleTemplates,
  movieThemes,
  actorNames,
  directorNames,
  countries,
  languages,
  commentTemplates,
  aspects,
  opinions,
  roles
}
